/*
 * Nom de la classe : Jeton
 * 
 * Description : Classe abstraite formant la base commune aux classes JetonDiable, JetonJoker, JetonMulti et JetonSimple.
 * 
 * Date : 21 Novembre 2011
 * 
 * Groupe 17
 */

package jeu;

/**
 * Classe abstraite formant la base commune aux classes JetonDiable, JetonJoker, JetonMulti et JetonSimple.
 * 
 * @author Groupe 17
 *
 */

public abstract class Jeton {

	protected int valeur;
	protected Case c = null;
	protected Joueur joueur;
	protected boolean deplace;
	protected long id_Jeton = -1;

	// Constructeurs

	protected Jeton(int valeur, Joueur joueur) {
		super();
		this.valeur = valeur;
		this.joueur = joueur;
	}

	protected Jeton(int valeur, Case cas, Joueur joueur) {
		super();
		this.valeur = valeur;
		this.c = cas;
		this.joueur = joueur;
	}

	protected Jeton(int valeur, Case cas, Joueur joueur, long id_Jeton) {
		super();
		this.valeur = valeur;
		this.c = cas;
		this.joueur = joueur;
		this.id_Jeton = id_Jeton;
	}

	// Getters & Setters

	public abstract String getType();

	public int getValeur() {
		return valeur;
	}

	public Case getCase() {
		return c;
	}

	public void setCase(Case c) {
		this.c = c;
	}

	public Joueur getJoueur() {
		return joueur;
	}

	public void setJoueur(Joueur j) {
		this.joueur = j;
	}

	public boolean isDeplace() {
		return deplace;
	}

	public void setDeplace(boolean deplace) {
		this.deplace = deplace;
	}

	public long getId() {
		return this.id_Jeton;
	}

	public void setId(long id) {
		this.id_Jeton = id;
	}

	@Override
	public String toString() {
		return "" + this.valeur;
	}
}
